import random

# 定义事件列表，每个事件包含描述、属性变化和发生概率
events = [
    {
        "description": "你在学校参加了一场数学竞赛，凭借聪明的头脑获得了一等奖，智力 + 2。",
        "intelligence_change": 2,
        "strength_change": 0,
        "charm_change": 0,
        "probability": 0.2
    },
    {
        "description": "你坚持每天锻炼身体，身体素质大幅提升，力量 + 3。",
        "intelligence_change": 0,
        "strength_change": 3,
        "charm_change": 0,
        "probability": 0.2
    },
    {
        "description": "你参加了一场社交活动，结识了很多新朋友，魅力 + 2。",
        "intelligence_change": 0,
        "strength_change": 0,
        "charm_change": 2,
        "probability": 0.2
    },
    {
        "description": "你遭遇了一场意外，身体受伤，力量 - 1。",
        "intelligence_change": 0,
        "strength_change": -1,
        "charm_change": 0,
        "probability": 0.1
    },
    {
        "description": "你在学习中遇到了难题，陷入了困惑，智力 - 1。",
        "intelligence_change": -1,
        "strength_change": 0,
        "charm_change": 0,
        "probability": 0.1
    },
    {
        "description": "你在社交场合出了洋相，魅力 - 1。",
        "intelligence_change": 0,
        "strength_change": 0,
        "charm_change": -1,
        "probability": 0.1
    },
    {
        "description": "这一年你过得平平淡淡，没有什么特别的事情发生。",
        "intelligence_change": 0,
        "strength_change": 0,
        "charm_change": 0,
        "probability": 0.1
    }
]


# 初始化属性
def initialize_attributes():
    while True:
        try:
            total_points = 20
            print("你有 20 点属性点可以分配到智力、力量和魅力上。")
            intelligence = int(input("请输入分配给智力的属性点："))
            strength = int(input("请输入分配给力量的属性点："))
            charm = int(input("请输入分配给魅力的属性点："))
            if intelligence + strength + charm == total_points and intelligence >= 0 and strength >= 0 and charm >= 0:
                return intelligence, strength, charm
            else:
                print("属性点分配错误，请确保总和为 20 且每个属性点不小于 0。")
        except ValueError:
            print("输入无效，请输入有效的整数。")


# 经历一年的人生
def live_a_year(intelligence, strength, charm):
    for event in events:
        if random.random() < event["probability"]:
            print(event["description"])
            intelligence += event["intelligence_change"]
            strength += event["strength_change"]
            charm += event["charm_change"]
            # 确保属性值不小于 0
            intelligence = max(0, intelligence)
            strength = max(0, strength)
            charm = max(0, charm)
            break
    return intelligence, strength, charm


# 主模拟函数
def life_restart_simulation():
    print("欢迎来到人生重启模拟器！")
    intelligence, strength, charm = initialize_attributes()
    years = 80
    for year in range(1, years + 1):
        print(f"\n第 {year} 年：")
        intelligence, strength, charm = live_a_year(intelligence, strength, charm)
        print(f"当前属性：智力 - {intelligence}，力量 - {strength}，魅力 - {charm}")

    print("\n人生结束，以下是你的人生总结：")
    if intelligence >= 80:
        print("你凭借超高的智力成为了一名杰出的科学家，为人类的进步做出了巨大贡献。")
    elif intelligence >= 50:
        print("你有着不错的智力，在知识领域取得了一定的成就。")
    else:
        print("你的智力较为普通，过着平凡的生活。")

    if strength >= 80:
        print("你拥有超强的力量，成为了一名顶尖的运动员，在赛场上屡创佳绩。")
    elif strength >= 50:
        print("你有着良好的身体素质，在体育方面有一定的表现。")
    else:
        print("你的力量一般，日常活动没有问题。")

    if charm >= 80:
        print("你魅力非凡，成为了众人瞩目的明星，拥有无数粉丝。")
    elif charm >= 50:
        print("你很有魅力，身边总是围绕着很多朋友。")
    else:
        print("你的魅力普通，有自己的小圈子。")


if __name__ == "__main__":
    life_restart_simulation()